package com.smart.common.util;

import lombok.Data;
import java.util.Collection;
import com.smart.vo.UserVo;
import lombok.NoArgsConstructor;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

/**
 * @author lgb
 * @date 2020年6月13日 上午9:37:24
 * Copyright (C) 深圳工勘科技
 * @说明: 需要的用户详情
 **/
@Data
@NoArgsConstructor
public class SysUserDetails implements UserDetails{
	
	private static final long serialVersionUID = 268969461675443573L;

	private UserVo infoVo;
	
	@Override // 返回当前用户的权限
	public Collection<? extends GrantedAuthority> getAuthorities(){
		return null;
	}

	@Override
	public String getPassword() {
		return infoVo.getPassword();
	}
	@Override
	public String getUsername() {
		return infoVo.getUserName();
	}
	/** 账户是否未过期,过期无法验证 */
	@Override
	public boolean isAccountNonExpired() {
		return true;
	}
	/**
	 * 指定用户是否解锁,锁定的用户无法进行身份验证
	 * @return
	 **/
	@Override
	public boolean isAccountNonLocked() {
		return true;
	}
	/**
	 * 指示是否已过期的用户的凭据(密码),过期的凭据防止认证
	 * @return
	 **/
	@Override
	public boolean isCredentialsNonExpired() {
		return true;
	}
	/**
	 * 是否可用 ,禁用的用户不能身份验证
	 * @return
	 **/
	@Override
	public boolean isEnabled() {
		return infoVo.getStatus() == UserVo.online;
	}
	public UserVo getInfoVo() {
		return infoVo;
	}
	public void setInfoVo(UserVo infoVo) {
		this.infoVo = infoVo;
	}
}